/**
 * @author ChaP
 * @date 2019/06/30
 * @describe:
 */
package CodingTest.AC20190630;

/**leetcode - 507
 * 对于一个 正整数，如果它和除了它自身以外的所有正因子之和相等，我们称它为“完美数”。

 给定一个 正整数 n， 如果他是完美数，返回 True，否则返回 False

  

 示例：

 输入: 28
 输出: True
 解释: 28 = 1 + 2 + 4 + 7 + 14

 来源：力扣（LeetCode）
 链接：https://leetcode-cn.com/problems/perfect-number
 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 *
 */
public class checkPerfectNumber {
    public boolean checkPerfectNumber(int num){
        if(num == 0||num == 1) return false;
        int sum = 1;
        for(int i = 2;i<=Math.sqrt(num);i++){
            if(num%i == 0){
                sum+=i;
                sum+= num/i;
            }
        }
        if(sum == num) return true;
        else return false;
    }

    public static void main(String[] args) {
        int num = 28;
        checkPerfectNumber c = new checkPerfectNumber();
        System.out.println(c.checkPerfectNumber(num));
    }
}
